/**
    package: learn-go
    filename: _map
    author: diogo@gmail.com
    time: 2023/3/9 11:16

	。要从map中随机取一个键值对，你可以使用以下方法：
	首先，创建一个切片（slice），用来存储map的所有键。
	然后，使用rand包中的函数，生成一个随机数，作为切片的索引。
	最后，根据索引，从切片和map中分别取出对应的键和值。
**/
package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	// 创建一个map
	m := map[string]int{
		"apple":  5,
		"banana": 3,
		"orange": 4,
	}

	// 创建一个切片，用来存储map的所有键
	keys := make([]string, 0, len(m))
	for k := range m {
		keys = append(keys, k)
	}

	// 设置随机数种子
	rand.Seed(time.Now().UnixNano())

	// 生成一个随机数，作为切片的索引
	i := rand.Intn(len(keys))

	// 根据索引，从切片和map中分别取出对应的键和值
	key := keys[i]
	value := m[key]

	fmt.Println("Random key-value pair:", key, value)
}
